home *** CD-ROM | disk | FTP | other *** search
/ Revolution - Das Atari CD Magazin 1997 / Revolution - Das Atari CD Magazin 1.iso / software / anwendng / qed_397 / sourcen / comm.c < prev    next >
C/C++ Source or Header  |  1997-01-04  |  2KB  |  96 lines

  1. #include "global.h"
  2. #include "av.h"
  3. #include "dd.h"
  4. #include "magx.h"
  5. #include "olga.h"
  6. #include "se.h"
  7. #include "comm.h"
  8.  
  9. /* exportierte Variablen *****************************************************/
  10. GLOBAL UBYTE    *global_str1,
  11.                     *global_str2;
  12. GLOBAL WORD        msgbuff[8];             /* Buffer, den send_msg verschickt */
  13.  
  14. /*****************************************************************************/
  15.  
  16. GLOBAL VOID *malloc_global(LONG size)
  17. {
  18.     VOID    *r;
  19.  
  20.     if (mint || magx)
  21.         r = Mxalloc(size, 0x0043);
  22.     else
  23.         r = Malloc(size);
  24.     return r;
  25. }
  26.  
  27. GLOBAL BOOLEAN send_msg(WORD id)
  28. {
  29.     WORD    ret;
  30.     
  31.     msgbuff[1] = gl_apid;
  32.     msgbuff[2] = 0;
  33.     ret = appl_write(id, (short) sizeof(msgbuff), msgbuff);
  34.     return (ret > 0);
  35. }
  36.  
  37.  
  38. GLOBAL VOID send_clip_change(VOID)
  39. {
  40.     WORD    d, i;
  41.  
  42.     if ((av_shell_id >= 0) && (av_shell_status & 512))    /* Desktop informieren */
  43.     {
  44.         memset(msgbuff, 0, (WORD)sizeof(msgbuff));
  45.         msgbuff[0] = AV_PATH_UPDATE;
  46.         strcpy(global_str1, scrapdir);
  47.         *(UBYTE **) (msgbuff + 3) = global_str1;
  48.         send_msg(av_shell_id);
  49.     }
  50.     if (((appl_xgetinfo(10, &i, &d, &d, &d)) && ((i&0x00FF) >= 7)) /* gibts Broadcast? */
  51.          || (magx >= 0x400))
  52.     {
  53.         memset(msgbuff, 0, (WORD)sizeof(msgbuff));
  54.         msgbuff[0] = SC_CHANGED;    /* alle anderen Applikationen */
  55.         msgbuff[3] = 0x0002;    /* Text */
  56.         msgbuff[4] = '.T';
  57.         msgbuff[5] = 'XT';
  58.         shel_write(7, 0, 0, (UBYTE *)&msgbuff, NULL);
  59.     }
  60. }
  61.  
  62. GLOBAL VOID send_m_special(WORD mode, WORD app)
  63. {
  64.     if (magx)
  65.     {
  66.         memset(msgbuff, 0, (WORD)sizeof(msgbuff));
  67.         msgbuff[0] = SM_M_SPECIAL;
  68.         msgbuff[4] = 'MA';
  69.         msgbuff[5] = 'GX';
  70.         msgbuff[6] = mode;
  71.         msgbuff[7] = app;
  72.         send_msg(appl_find("SCRENMGR"));
  73.     }
  74. }
  75.  
  76. GLOBAL VOID init_comm(VOID)
  77. {
  78.  
  79.     global_str1 = malloc_global(256);
  80.     global_str2 = malloc_global(256);
  81.     init_av();
  82.     init_se();
  83.     init_olga();
  84. }
  85.  
  86. GLOBAL VOID term_comm(VOID)
  87. {
  88.     term_olga();
  89.     term_se();
  90.     term_av();
  91.     if (global_str1 != NULL)
  92.         Mfree(global_str1);
  93.     if (global_str2 != NULL)
  94.         Mfree(global_str2);
  95. }
  96.